package consultaADistancia;

import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import oda.ODT_Devoluciones;
import oda.ODT_Honorario;
import oda.ODT_HonorariosCausados;
import oda.ODT_PagosEfectuados;
import oda.ODT_estado_doc;
import accesoADatos.TRN_honorario;

import com.movil.registrodelapropiedadgt.R;
import com.movil.registrodelapropiedadgt.R.layout;
import com.movil.registrodelapropiedadgt.R.menu;

import android.os.Bundle;
import android.app.Activity;
import android.content.pm.FeatureInfo;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.ListView;
import android.widget.SimpleExpandableListAdapter;
import android.widget.TextView;

public class Show_honorarios extends Activity {
	
	/*******************************************************************************************/ 
	static String Respuesta="";
	static String NoRecibo="";
	private String RespuestaLocal="";
	private String NoReciboLocal="";
	String[] groups;//agrupacion de tabs
	  
	String[] pagos_efectuados;// areglo de pagos efectuados
	String[] Honorarios;// arreglo con desglose de honorarios
	
	String[] Devoluciones;// arreglo 
	  
	ArrayList<Map<String, String>> groupData;
	ArrayList<Map<String, String>> childDataItem;
	ArrayList<ArrayList<Map<String, String>>> childData;
	Map<String, String> mapa;
	ExpandableListView elvMain;
	TRN_honorario tradutor=new TRN_honorario();
	/*******************************************************************************************/
	  
	static ODT_Honorario honorarios=new ODT_Honorario();
	TextView L_recibo;
	TextView L_fecha;  
	TextView L_saldo;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_show_honorarios);
		
		llenarRecibo();
		if (!Respuesta.equals("")) {
			
			RespuestaLocal=Respuesta;
		}
		if (!NoRecibo.equals("")) {
			NoReciboLocal=NoRecibo;
			//hono
		}
		
		L_recibo=(TextView) findViewById(R.id.LL_Dato1_honorarios);
		L_saldo= (TextView) findViewById(R.id.LL_Saldo);
		
		L_recibo.setText("Recibo: "+honorarios.getID_recibo());
	
		
		/*************************************************************/
		  
        groupData = new ArrayList<Map<String, String>>();
        for (String group : groups) {
          
        	mapa = new HashMap<String, String>();
            mapa.put("groupName", group); 
            groupData.add(mapa);  
        }
        
        String groupFrom[] = new String[] {"groupName"};
        int groupTo[] = new int[] {android.R.id.text1};
        

        childData = new ArrayList<ArrayList<Map<String, String>>>(); 
        
        childDataItem = new ArrayList<Map<String, String>>();
        for (String phone : pagos_efectuados) {
          mapa = new HashMap<String, String>();
            mapa.put("phoneName", phone);
            childDataItem.add(mapa);  
        }
        childData.add(childDataItem);

        childDataItem = new ArrayList<Map<String, String>>();
        for (String phone : Honorarios) {
          mapa = new HashMap<String, String>();
            mapa.put("phoneName", phone);
            childDataItem.add(mapa);  
        }
        childData.add(childDataItem);

        childDataItem = new ArrayList<Map<String, String>>();
        for (String phone : Devoluciones) {
          mapa = new HashMap<String, String>();
            mapa.put("phoneName", phone);
            childDataItem.add(mapa);  
        }
        childData.add(childDataItem);

        String childFrom[] = new String[] {"phoneName"};
        int childTo[] = new int[] {android.R.id.text1};
        
        //adaptador para la lista expancible
        SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(
            this,
            groupData,
            android.R.layout.simple_expandable_list_item_1,
            groupFrom,
            groupTo,
            childData,
            android.R.layout.simple_list_item_1,
            childFrom,
            childTo);
            
        elvMain = (ExpandableListView) findViewById(R.id.LEL_Honorarios);
        elvMain.setAdapter(adapter);
		
        //setear el total del saldo que se debe pagar
        L_saldo.setText("Saldo: Q."+honorarios.getSaldo());
        
        NoRecibo="";
        Respuesta="";
	}

	public static String getRespuesta() {
		return Respuesta;
	}

	public static void setRespuesta(String respuesta) {
		Respuesta = respuesta;

	}

	public static String getNoRecibo() {
		return NoRecibo;
	}

	public static void setNoRecibo(String noRecibo) {
		NoRecibo = noRecibo;
	}

	/**
	 * 
	 * @param NoRecibo numero de resio del cual se desea obtener la data
	 * 
	 */
	private void poblarhonorario(String Respuesta)
	{
		
		honorarios=tradutor.getHonorario(tradutor.StringToJson(Respuesta));
	} 	
	/**
	 * 
	 * @param Norecibo nuero de recibo de el cual se requiere la data
	 *
	 */
	private void llenarRecibo(){
		//metodo para obtere la data del WS
		//poblarhonorario(Respusta);
		
		//arreglos para almacenar los datos de el recibo
		ArrayList<String> stock_list = new ArrayList<String>();
	    ArrayList<String> Arrhonorario=new ArrayList<String>();
	    ArrayList<String> ArrPagos=new ArrayList<String>();
	    ArrayList<String> ArrDevoluciones=new ArrayList<String>();
		
	    //poblacion de vector de Devoluciones
		for (int i = 0; i < honorarios.getListaDevoluciones().size(); i++) 
		{
			DateFormat df =  DateFormat.getDateInstance();
			String sFecha = honorarios.getListaDevoluciones().get(i).getFecha();
			ArrDevoluciones.add("              "+sFecha+" Q."+honorarios.getListaDevoluciones().get(i).getMonto());
		}
		
		//poblacion de vector de honorarios
		for (int i = 0; i < honorarios.getListaHonorarios().size(); i++) 
		{
			Arrhonorario.add("              "+honorarios.getListaHonorarios().get(i).getNombreDocumento()
					+" Q."+honorarios.getListaHonorarios().get(i).getMonto());
		}
		//poblacion de vector de Pagos Efectuados
		for (int i = 0; i < honorarios.getListaPagosEfectuados().size(); i++) 
		{
			DateFormat df =  DateFormat.getDateInstance();
			String sFecha =  honorarios.getListaPagosEfectuados().get(i).getFecha();
			
			ArrPagos.add("              "+sFecha+" Q."+honorarios.getListaPagosEfectuados().get(i).getMonto());
		}
		
	    //seteo de leng del String[]
	    pagos_efectuados=new String[ArrPagos.size()];
	    Honorarios=new String[Arrhonorario.size()];
	    Devoluciones=new String[ArrDevoluciones.size()];
	    
	    //casteo de arrayList a String[] 
	    pagos_efectuados = ArrPagos.toArray(pagos_efectuados);
	    Honorarios = Arrhonorario.toArray(Honorarios);
	    Devoluciones = ArrDevoluciones.toArray(Devoluciones);
		
	    //////////////////////////////////////////////////////////////////////////////////////////////////////
		//seteo de encabezados con sumatorias de honorarios, pagos y devoluciones
	    groups = new String[] {"Pagos Efectuados \n Q. +"+honorarios.getTotalPagoEfectuados(),
				"Honorarios Causados \n Q. -"+honorarios.getTotalHonorarios(),
				"devoluciones \n Q. "+honorarios.getTotalDevoluciones()};
		  
		//////////////////////////////////////////////////////////////////////////////////////////////////////
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.show_honorarios, menu);
		return true;
	}

}
